1. Field of the Invention
This invention relates generally to cloud computing, and more specifically, to throttling heterogeneous migration sessions in a virtualized cloud computing environment.
2. Description of the Related Art
A cloud computing environment is generally a large number of server computers (nodes) hosting data and applications that are connected through a real-time communication network. Virtualization technologies enable the sharing of computational and storage resources in the cloud computing environment by creating virtual versions of devices or resources that are divided into one or more execution environments. For example, in a virtualized cloud computing data center, physical resources such as processors, memories, network bandwidth and storage are abstracted in virtual pools for efficient resource utilization and improved manageability.
In a typical virtualized cloud computing data center, input/output (I/O) traffic is usually categorized as cloud user generated traffic or cloud management related traffic. Cloud user generated traffic is generally any work that has to be carried in the cloud computing center that is beyond a cloud administrator's control. It is usually transparent to end users and is less controllable by cloud administrators. Inter virtual machine (VM) communications, application I/O requests to storage devices, are some examples of cloud user generated traffic. Cloud management related traffic is generally any work initiated by a cloud administrator via cloud management/orchestration software that facilitates load balancing and improved resource utilization. Virtual disk (VD) and VM migrations and backup/restore sessions are examples of cloud management related traffic. Typically, cloud user generated traffic and cloud management related traffic coexist in the virtualized cloud computing data center and share the same resource pools such as network bandwidth, device CPU cycles, I/O bandwidth, etc.
Even though cloud user generated traffic and cloud management related traffic can coexist, scenarios in which multiple sessions of cloud management are initiated can lead to cloud management related traffic that yields undesirable congestion and application latency in the virtualized cloud computing data center. For example, consider where a cloud administrator initiates a mixture of VM migration sessions, fileset migration sessions and storage volume migration sessions; each of which is heterogeneous in their types of functions performed. During these migration sessions, an application may experience excessive I/O latency. The cloud management related traffic generated from these currently running migration sessions can contribute to the excessive latency by causing congestion. This deteriorates a cloud user's experience and will likely violate a service level agreement (SLA) that is associated with the virtualized cloud computing data center.
In the above scenario, a cloud administrator would typically attempt to throttle or reduce migration transfer rates of the running migration sessions to alleviate network congestion and/or resource overutilization and reduce the application I/O latency to an acceptable level. There are a number of approaches in which a cloud administrator can throttle migration sessions. For example, for storage volume migrations, a mirrored volume can be created first and the original volume can be deleted after the two volumes are synchronized to complete the migration. Since synchronization can last from a few seconds to a few hours, throttling involves an instruction from the cloud administrator to reduce the synchronization rate, which in turn, reduces the traffic load in the data center. Similarly, for VM migrations, the migration speed can be regulated by enabling certain features on a corresponding datastore.
These currently available approaches to throttling migration sessions are limited in that they can typically only focus on one specific type of migration at a time. For example, these approaches to throttling migration session can work on only homogeneous migration sessions and not heterogeneous migration sessions (e.g., storage volume, a VM or file) having varying types of functions that run concurrently and share the same set of devices/resources.